package com.hksj.lntm.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hksj.common.config.annotation.DS_TAOS;
import com.hksj.lntm.dto.LiquidNitrogenDeviceDTO;
import com.hksj.lntm.dto.LiquidNitrogenDeviceHistoryDTO;
import com.hksj.lntm.vo.LiquidNitrogenDeviceHistoryDataVO;
import com.hksj.lntm.vo.LiquidNitrogenDeviceVO;
import com.hksj.lntm.vo.PropertyModelVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author fjt
 * @data 2024/11/11 8:52
 * @describe
 */
@Mapper
public interface LiquidNitrogenDeviceMapper {

    /**
     * 分页查询液氮罐设备
     * @param page
     * @param dto
     * @return
     */
    List<LiquidNitrogenDeviceVO> queryLiquidNitrogenDeviceByPage(@Param("page")IPage<LiquidNitrogenDeviceVO> page, @Param("dto")LiquidNitrogenDeviceDTO dto);

    /**
     * 查询每个设备监测指标的报警情况
     * @param list
     * @return
     */
    List<PropertyModelVO> queryAlarmByDeviceIdList(List<String> list);

    /**
     * 查询指定液氮罐设备历史监测指标趋势图
     * @param dto
     * @param tableName
     * @return
     */
    @DS_TAOS
    List<LiquidNitrogenDeviceHistoryDataVO> LiquidNitrogenDeviceHistoryList(@Param("query")LiquidNitrogenDeviceHistoryDTO dto, @Param("tableName") String tableName);


    /**
     * 分页查询指定液氮罐设备指定监测指标的历史监测数据详情
     * @param dto
     * @param tableName
     * @return
     */
    @DS_TAOS
    List<LiquidNitrogenDeviceHistoryDataVO> pageDeviceHistoryByProperty(@Param("query")LiquidNitrogenDeviceHistoryDTO dto, @Param("tableName") String tableName);


    @DS_TAOS
    Long count(@Param("query")LiquidNitrogenDeviceHistoryDTO dto, @Param("tableName")String tableName);

}
